Fix crash when session.todos is not an array#823
Open
chaehyun2 wants to merge 6 commits intoslopus:mainfrom
Open
Fix crash when session.todos is not an array#823chaehyun2 wants to merge 6 commits intoslopus:mainfrom
chaehyun2 wants to merge 6 commits intoslopus:mainfrom
Conversation
Add Array.isArray guards to prevent "undefined is not a function" errors when todos data is not in expected array format. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Preserve empty interior cells when parsing tables (fixes column misalignment when first header cell is empty) - Add selectable prop to table text elements (enables text selection and copy on web, matching other markdown blocks) Generated with [Claude Code](https://claude.ai/code) via [Happy](https://happy.engineering) Co-Authored-By: Claude <noreply@anthropic.com> Co-Authored-By: Happy <yesreply@happy.engineering>
Empty cells had no text content causing lineHeight to not apply, resulting in cells ~1/3 the height of populated cells. Generated with [Claude Code](https://claude.ai/code) via [Happy](https://happy.engineering) Co-Authored-By: Claude <noreply@anthropic.com> Co-Authored-By: Happy <yesreply@happy.engineering>
Users can now paste images from clipboard in the web chat input. Images are sent alongside text messages through the full pipeline: web UI → sync → CLI → Claude Code SDK (as base64 content array). - MultiTextInput.web.tsx: onPaste handler extracts clipboard images - AgentInput.tsx: image preview thumbnails with remove button - SessionView.tsx: image state management - sync.ts: images field in sendMessage - typesRaw.ts + legacyProtocol.ts: schema support for images - MessageQueue2.ts: images carried through queue batching - claudeRemote.ts: buildContent constructs SDK content array - claudeRemoteLauncher.ts + runClaude.ts: pass images through Generated with [Claude Code](https://claude.ai/code) via [Happy](https://happy.engineering) Co-Authored-By: Claude <noreply@anthropic.com> Co-Authored-By: Happy <yesreply@happy.engineering>
- Use type assertion for images field access (zod inference limitation) - Fix formatOptionalDetail to accept null parameter Generated with [Claude Code](https://claude.ai/code) via [Happy](https://happy.engineering) Co-Authored-By: Claude <noreply@anthropic.com> Co-Authored-By: Happy <yesreply@happy.engineering>
The server validates max 100 messages per POST request. When pendingOutbox accumulated more than 100 messages (e.g. during long conversations), flushOutbox would fail with a 400 error and never clear the outbox, permanently blocking all message delivery to the web UI. Now splits into chunks of 100 and sends sequentially. Generated with [Claude Code](https://claude.ai/code) via [Happy](https://happy.engineering) Co-Authored-By: Claude <noreply@anthropic.com> Co-Authored-By: Happy <yesreply@happy.engineering>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Array.isArrayguard inActiveSessionsGroup.tsxto prevent.filter()crash on non-array todosArray.isArrayguard inreducer.tsto ensure todos output is always an array or undefinedHAPPY_SERVER_URLbuild arg toDockerfile.webappfor custom server URL injectionProblem
When
session.todoscontains a non-array value, the app crashes with:t.todos.filter is not a functionundefined is not a functionTest plan
🤖 Generated with Claude Code